﻿using Abp.Application.Editions;
using Abp.Auditing;
using Abp.Authorization;
using Abp.Notifications;
using Abp.Organizations;
using AutoMapper;
using Partner.Surround.Auditing.Dto;
using Partner.Surround.Authorization.Permissions.Dto;
using Partner.Surround.Authorization.Roles;
using Partner.Surround.Authorization.Roles.Dto;
using Partner.Surround.Authorization.Users;
using Partner.Surround.Authorization.Users.Dto;
using Partner.Surround.Chat;
using Partner.Surround.Chat.Dto;
using Partner.Surround.Editions.Dto;
using Partner.Surround.Friendships;
using Partner.Surround.Friendships.Cache;
using Partner.Surround.Friendships.Dto;
using Partner.Surround.MultiTenancy;
using Partner.Surround.MultiTenancy.Dto;
using Partner.Surround.Notifications.Dto;
using Partner.Surround.Organizations.Dto;

namespace Partner.Surround.Systems
{
    internal static class SystemManagementMapper
    {
        public static void CreateMappings(IMapperConfigurationExpression configuration)
        {
            configuration.CreateMap<AuditLog, AuditLogListDto>();
            configuration.CreateMap<Tenant, TenantDto>();
            configuration.CreateMap<NotificationDefinition, NotificationSubscriptionWithDisplayNameDto>();
            configuration.CreateMap<Friendship, FriendDto>();
            configuration.CreateMap<FriendCacheItem, FriendDto>();
            configuration.CreateMap<Role, RoleDto>();
            configuration.CreateMap<Permission, RolePermissionDto>();
            configuration.CreateMap<User, UserDto>();
            configuration.CreateMap<User, UserEditDto>();
            configuration.CreateMap<Permission, PermissionDto>();
            configuration.CreateMap<Friendship, FriendDto>();
            configuration.CreateMap<FriendCacheItem, FriendDto>();
            configuration.CreateMap<ChatMessage, ChatMessageDto>();
            configuration.CreateMap<Edition, EditionDto>();
            configuration.CreateMap<OrganizationUnit, OrganizationUnitDto>();
        }
    }
}
